import { ArrayMinSize, IsArray, IsEmpty, IsNotEmpty, IsNumber, IsOptional, IsString, Max, MaxLength, Min } from "class-validator";

class CommonDto {
    @MaxLength(10, {message : '菜单名长度不能超过10个字符'})
    @IsNotEmpty({message : '请填写菜单名'})
    @IsString({message : '数据非法'})
    name:string;

    @MaxLength(30, {message : '路径长度不能超过30个字符'})
    @IsNotEmpty({message : '请填写路径'})
    @IsString({message : '数据非法'})
    path:string;

    @MaxLength(30, {message : '组件长度不能超过30个字符'})
    @IsNotEmpty({message : '请填写组件'})
    @IsString({message : '数据非法'})
    component:string;

    @Max(1, {message : '数据非法'})
    @Min(0, {message : '数据非法'})
    @IsNumber({}, {message : '数据非法'})
    @IsOptional()
    keepAlive:number;

    @Min(0, {message : '数据非法'})
    @IsNumber({}, {message : '数据非法'})
    @IsOptional()
    sort:number;

    @Max(1, {message : '数据非法'})
    @Min(0, {message : '数据非法'})
    @IsNumber({}, {message : '数据非法'})
    @IsOptional()
    display:number;

    
}

export class AddMenuDto extends CommonDto {
    @Min(0, {message : '数据非法'})
    @IsNumber({}, {message : '数据非法'})
    parentId:number;
}

export class EditMenuDto extends CommonDto {
    
}

export class DeleteMenuDto {
    //@ArrayMinSize(1, {message : '数据非法'})
    //@IsArray({message : '数据非法'})
    @Min(1, {message : '数据非法'})
    @IsNumber({}, {message : '数据非法'})
    id : number;
}